home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CU Amiga Super CD-ROM 19
/
CU Amiga Magazine's Super CD-ROM 19 (1998)(EMAP Images)(GB)[!][issue 1998-02].iso
/
CUCD
/
Online
/
Apache
/
wwwcount2.4
/
Gen-conf
< prev
next >
Wrap
Text File
|
1997-11-23
|
13KB
|
502 lines
#!/bin/sh
###
# $Revision: 2.3 $
# $Date: 1996/05/03 02:20:22 $
#
# Automatically generate the conter configuration file
###
#
# it was hard coded 2.3, thanks to craig@picasso.ppco.com for reporting.
# nov-05-1997
#
Version=`cat ./VERSION`
ConfFile="count.cfg"
nick=0
ignc=0
alfc=0
strict=0
rgb=0
(echo "hi there\c" ; echo " ") >.echotest
if grep c .echotest >/dev/null 2>&1 ; then
n='-n'
c=''
else
n=''
c='\c'
fi
rm -f .echotest >/dev/null 2>&1
cat << EOSI
Welcome to the conf file generation procedure of Count $Version
This program creates a workable conf file for your host only, you have
to edit it by hand if you want to add other hosts. The file will have
enough comments in it to help you out. You also have to hand edit it
if you want to use netmasks to mask out a entire network or a specific
range of hosts in a network.
First of all you must know your
1) fully qualified domain name (FQDN), for example,
if your hostname is foo and your domain name is foobar.com,
then your FQDN is
foo.foobar.com
2) IP address of your host, for example,
192.165.155.2
3) If your host has any nickname defined, for example,
www.foobar.com. The nick name also has to be FQDN.
4) If you want to allow automatic datafile creation (bad thing).
5) If you want to run the counter in strict mode.
6) If you want to ignore access hits from your own host.
EOSI
echo $n "Continue [y|n]$c? "
read answer
if [ .$answer = . ]
then
answer=x
fi
until [ $answer = "y" -o $answer = "Y" -o $answer = "n" -o $answer = "N" ]
do
echo $n "Continue [y|n]$c? "
read answer
if [ .$answer = . ]
then
answer=x
fi
done
case $answer in
y|Y)
######
# Enter hostname --Starts
#####
cat<<EOE
No Error checking will be done with your hostname, therefore,
you better make sure you are entering the fully qualified domain name.
EOE
echo $n "* Enter your fully qualified domain name [no default]:$c "
read hostname
host=`echo $hostname|awk -F. '{print $1}'`
dom1=`echo $hostname|awk -F. '{print $2}'`
dom2=`echo $hostname|awk -F. '{print $3}'`
until [ .$hostname != . -a .$host != . -a .$dom1 != . -a .$dom2 != . ]
do
echo $n "* Enter your fully qualified domain name [no default]:$c "
read hostname
host=`echo $hostname|awk -F. '{print $1}'`
dom1=`echo $hostname|awk -F. '{print $2}'`
dom2=`echo $hostname|awk -F. '{print $3}'`
done
######
# Enter hostname --Ends
#####
######
# Enter ip address --Starts
#####
cat<<EOE
No Error checking will be done with your IP address, therefore,
you better make sure you are entering the correct IP address.
EOE
echo $n "* Enter your IP address [no default]:$c "
read ipaddress
oct1=`echo $ipaddress|awk -F. '{print $1}'`
oct2=`echo $ipaddress|awk -F. '{print $2}'`
oct3=`echo $ipaddress|awk -F. '{print $3}'`
oct4=`echo $ipaddress|awk -F. '{print $4}'`
until [ .$ipaddress != . -a .$oct1 != . -a .$oct2 != .\
-a .oct3 != . -a .$oct4 != . ]
do
echo $n "* Enter your IP address [no default]:$c "
read ipaddress
oct1=`echo $ipaddress|awk -F. '{print $1}'`
oct2=`echo $ipaddress|awk -F. '{print $2}'`
oct3=`echo $ipaddress|awk -F. '{print $3}'`
oct4=`echo $ipaddress|awk -F. '{print $4}'`
done
######
# Enter ip address --Ends
#####
######
# ask for nick --Starts
#####
echo ""
echo $n "* Does your host have any nickname [y|n]:$c? "
read answer
if [ .$answer = . ]
then
answer=x
fi
until [ $answer = "y" -o $answer = "Y" -o $answer = "n" -o $answer = "N" ]
do
echo $n "* Does your host have any nickname (FQDN) [y|n]:$c? "
read answer
if [ .$answer = . ]
then
answer=x
fi
done
case $answer in
y|Y)
nick=1
echo $n "* Enter your host's nickname (FQDN) [no default]:$c "
read nickname
nhost=`echo $nickname|awk -F. '{print $1}'`
ndom1=`echo $nickname|awk -F. '{print $2}'`
ndom2=`echo $nickname|awk -F. '{print $3}'`
until [ .$nickname != . -a .$nhost != . -a .$ndom1 != . -a .$ndom2 != . ]
do
echo $n "* Enter your host's nickname [no default]:$c "
read nickname
nhost=`echo $nickname|awk -F. '{print $1}'`
ndom1=`echo $nickname|awk -F. '{print $2}'`
ndom2=`echo $nickname|awk -F. '{print $3}'`
done
;;
n|N)
;;
*)
echo "Illegal choice"
esac
until [ .$hostname != . -a .$host != . -a .$dom1 != . -a .$dom2 != . ]
do
echo $n "* Enter your fully qualified domain name [no default]:$c "
read hostname
host=`echo $hostname|awk -F. '{print $1}'`
dom1=`echo $hostname|awk -F. '{print $2}'`
dom2=`echo $hostname|awk -F. '{print $3}'`
done
######
# ask for nick --Ends
#####
;;
n|N)
echo "Exiting..Better luck next time!"
exit 1
;;
*)
echo ""
echo "Illegal choice"
esac
###
# allow file creation?
###
cat<<EOAF
Now you need to decide if you will allow the users to create datafiles
for them automatically. If you allow, the counter datafile will be
created for the user if it does not exist and a pre-determined counter
number will be inserted to it. If you do not allow, you have to create
the datafile for each user, provided that the data directory has proper
write permission.
Allowing users to create datafile is very convenient, as you do not
have to be asked all the time when someone decides to use the counter.
But the dark side of this is, anyone will be able create datafiles in
the data directory. The decision is yours.
EOAF
echo $n "* Do you want to allow automatic file creation [[y|n]$c? "
read answer
if [ .$answer = . ]
then
answer=x
fi
until [ $answer = "y" -o $answer = "Y" -o $answer = "n" -o $answer = "N" ]
do
echo $n "* Do you want to allow automatic file creation [[y|n]$c? "
read answer
if [ .$answer = . ]
then
answer=x
fi
done
case $answer in
y|Y)
alfc=1
;;
n|N)
alfc=0
;;
*)
echo ""
echo "Illegal choice"
esac
##
# compile in strict mode or not
###
cat <<EOSM
Now you need to decide if you want to compile the program in strict
mode. If you compile the program in strict mode, the browsers which
do not return the environment variable HTTP_REFERER, will not be
served, that is no access hit will be recorded, no time or date
will be displayed. Instead, a string 888888 will be displayed.
The strict mode ensures that your counter data file can not be messed
by accessing the counter remotely from a browser which does not return
that variable. Note, good browsers like netscape returns this
variable. Other browsers e.g. Mosaic does not return this variable in
IMG GET method at this time. This strict mode is experimental at this
time!
EOSM
echo $n "* Do you want the program to run in strict mode [[y|n]$c? "
read answer
if [ .$answer = . ]
then
answer=x
fi
until [ $answer = "y" -o $answer = "Y" -o $answer = "n" -o $answer = "N" ]
do
echo $n "* Do you want the program to run in strict mode [[y|n]$c? "
read answer
if [ .$answer = . ]
then
answer=x
fi
done
case $answer in
y|Y)
strict=1
;;
n|N)
strict=0
;;
*)
echo ""
echo "Illegal choice"
esac
########
echo $n "* Do you want to ignore access hits from your own host [y|n]$c? "
read answer
if [ .$answer = . ]
then
answer=x
fi
until [ $answer = "y" -o $answer = "Y" -o $answer = "n" -o $answer = "N" ]
do
echo $n "Do you want to ignore access from your own host [y|n]$c? "
read answer
if [ .$answer = . ]
then
answer=x
fi
done
case $answer in
y|Y)
ignc=1
;;
n|N)
ignc=0
;;
*)
echo ""
echo "Illegal choice"
esac
##
# allow to use color name datase? --starts
##
cat<<EORG
Ok, do you want the users to use the file rgb.txt for color name
lookup? It is very inefficient to search this file every time the
web page is loaded. If you answer yes, the color name
will be looked up and used. If you answer no, the color will be
looked up but instead of the counter image, the RGB value will
be displayed and the user will be asked to use the RGB value
instead. This will prevent users to use this file. However,
the convenience of allowing to use rgb.txt file is that color name e.g,
red, gold etc. can be used instead of cryptic red, green and blue
components of the color.
EORG
echo $n "* Allow using the rgb.txt file [y|n]$c? "
read answer
if [ .$answer = . ]
then
answer=x
fi
until [ $answer = "y" -o $answer = "Y" -o $answer = "n" -o $answer = "N" ]
do
echo $n "* Allow using the rgb.txt file [y|n]$c? "
read answer
if [ .$answer = . ]
then
answer=x
fi
done
case $answer in
y|Y)
rgb=1
;;
n|N)
rgb=0
;;
*)
echo ""
echo "Illegal choice"
esac
##
# allow to use color name datase? --ends
##
##########
d=`date`
hn=`hostname`
cat<<IGH>$ConfFile
#######
# configuration file for Count $Version
# Automatically generated from user input by the script Gen-conf
# Created on: $d
# Edit by hand, if you need to add something
##############################################
####
# BLOCK 1
# Allow automatic datafile creation or not
# it's a required block. 1 means allow, 0 means do not allow.
####
IGH
if [ $alfc -eq 1 ]
then
echo "{" >> $ConfFile
echo "1" >> $ConfFile
echo "}" >> $ConfFile
else
echo "{" >> $ConfFile
echo "0" >> $ConfFile
echo "}" >> $ConfFile
fi
cat<<STM>>$ConfFile
###
# BLOCK 2
# run the program in strict mode or not.
# it's a required block. 1 means strict, 0 means not strict.
###
STM
if [ $strict -eq 1 ]
then
echo "{" >> $ConfFile
echo "1" >> $ConfFile
echo "}" >> $ConfFile
else
echo "{" >> $ConfFile
echo "0" >> $ConfFile
echo "}" >> $ConfFile
fi
cat<<BLOCK3>>$ConfFile
####
# BLOCK 3
# Allow to use RGB color database. 1 means allow, 0 means don't.
# convenient to use because colorname e.g., red, gold etc can
# be used instead of rgb components of the color, however it's
# very inefficient to lookup.
####
BLOCK3
if [ $rgb -eq 1 ]
then
echo "{" >> $ConfFile
echo "1" >> $ConfFile
echo "}" >> $ConfFile
else
echo "{" >> $ConfFile
echo "0" >> $ConfFile
echo "}" >> $ConfFile
fi
cat<<IGH2>>$ConfFile
####
# BLOCK 4
# Ignore count block, you might want to ignore the local sites.
# If you do not want to ignore any hosts from
# counting, just put { on one line and } on the next line but make sure
# the braces exist!
# It's a required block.
##
# netmasks can be used to ignore a entire network or a specific
# range of hosts in the network. Read the counter documentation to
# know about netmasks. Wild carding can be used.
# one item per line.
####
IGH2
if [ $ignc -eq 1 ]
then
echo "{" >> $ConfFile
echo "$ipaddress" >> $ConfFile
echo "}" >> $ConfFile
else
echo "{" >> $ConfFile
echo "}" >> $ConfFile
fi
# generate auth block
cat<<EOBL>>$ConfFile
####
# BLOCK 5
# Auth block
# All possible names and IP addresses by which your host can be referred.
# These hosts can access the counter remotely or locally. Host running
# the http server must exist here. Wild card can be used.
#
# If Count.cgi was built with the USE_DNS macro defined, this block need
# only list valid IP addresses. In that case, it is recommended that this
# block only contain wild-carded IP addresses. Fewer entries in this
# block will decrease start-up overhead.
# one item per line.
##
EOBL
echo "{" >> $ConfFile
echo "$hostname" >> $ConfFile
echo "$host" >>$ConfFile
echo "$ipaddress" >> $ConfFile
if [ $nick -eq 1 ]
then
echo "$nickname" >> $ConfFile
echo "$nhost" >>$ConfFile
fi
echo "test.counter.com" >> $ConfFile
echo "}" >>$ConfFile
cat <<EOCF
Created conf file "$ConfFile"
Please look at it, you might want to edit it!
EOCF